Various computer languages are well known in the art. For example, there are so-called “markup” languages that provide a method of adding information to text in a computer-displayed document indicating the logical components of the document, or that provide instructions for the layout of text on the page or other information that can be interpreted by a computer. A particular example of a markup language is the so-called Extensible Markup Language (XML) that, in essence, makes data self-describing. XML provides a standardized approach that allows programmers to surround information with markup (i.e., “tags”) that describes what the data is, not just what it should look like or where it should be positioned. Using XML, documents can be created that are easily processed by computers that follow the relatively simple rules for interpreting XML “code”. To this end, an XML parser (an algorithm or program to determine the syntactic structure of a sentence or string of symbols written in some language) can be used to break down an XML document into a representation that a computer can understand.
Schemas may be associated with mark-up language. Generally, a schema may be an abstract representation ob an object's characteristics and relationship to other objects. In other words, schemas provide metadata for the markup-language, i.e., data that describes other data. For example an XML schema may represent the interrelationship between the attributes and elements of an XML object, i.e., proper syntax for a document and data. Using a schema included in a document, an XML parser can ensure that the remainder of the document follows the rules set forth in the schema, i.e., validation. This is useful to ensure that a given document conforms to an agreed-upon format. However, the schemas are designed to be flexible for users to create their own documents and thus, multiple schemas are often prevalent. Accordingly, multiple schemas require different types of validation and the validations are not mutually exclusive.
When an XML document has an associated schema, the parser will make sure that the document follows the rules of the schema. If the document does not follow the rules established by the schema, an error occurs. This is useful because it can verify that the document conforms to a particular desired structure, i.e., validate the document.
Software programs known in the art are used to validate XML documents. For example, Oracle Corporation has developed the XSDValidator and SAXParser to validate XML documents, each in their respective methods. However, the conventional validation software functions best when the documents conform to a single schema.
The conventional validation software has several drawbacks and disadvantages. For example, the conventional validation software may not correctly validate a document that has associated multiple languages. More particularly, a document may require multiple schemas. The conventional validation software may correctly validate one schema but not validate the rest of the schemas even though rest of the schemas may be correctly formed.
Moreover, although verification against a known syntax and structure is useful, it often is not sufficient for verifying that a document is valid against structure and semantics. Generally, a more complex set of logic is often applied to confirm that a document is valid in the sense that data contained therein conforms to real-world limitations. For example, one might check that the description is a known description, or that a product is in stock, or that an order doesn't exceed a credit limit. Accordingly, conventional validation software typically cannot apply the higher logic to documents, much less to documents that have associated multiple schemas or languages.